package com.huan.study.mybatis.mappers;

import com.huan.study.mybatis.entity.Customer;
import org.apache.ibatis.annotations.Param;

/**
 * @author huan.fu 2021/5/18 - 上午10:43
 */
import java.util.List;
import java.util.Map;

public interface CustomerMapper {
    // 单条插入
    int insert(Customer customer);

    // 批量插入
    int batchInsert(List<Customer> customers);

    // 根据ID删除
    int deleteById(Long id);

    // 根据手机号删除
    int deleteByPhone(String phone);

    // 批量删除
    int batchDelete(List<Long> ids);

    // 根据ID更新
    int updateById(Customer customer);

    // 选择性更新（不为null的字段）
    int updateSelectiveById(Customer customer);

    // 批量更新
    int batchUpdate(List<Customer> customers);

    // 根据ID查询
    Customer selectById(Long id);

    // 根据手机号查询
    Customer selectByPhone(String phone);

    // 条件查询
    List<Customer> selectByCondition(Map<String, Object> condition);

    // 分页查询
    List<Customer> selectByPage(Map<String, Object> params);

    // 统计数量
    Long countByCondition(Map<String, Object> condition);
}